using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Runtime.Serialization;
using MongoDB.Bson.Serialization.Attributes;
using MongoDB.Bson.Serialization.IdGenerators;
using MongoDB.Bson;

namespace folhapagamento 
{
	[Serializable()][DataContract(Name = "FolhaPagamento")]
	public class FolhaPagamento
	{
		[BsonId]
		public ObjectId id {get; set;}
		[DataMember]
		public int Mes { get; set; }	
		[DataMember]
		public decimal TotalDescontos {get; set;}
		[DataMember]
		public decimal TotalProventos {get; set;}
		[DataMember]
		public int Ano {get; set;}
		[DataMember(Name="Colaboradores")]
		public List<Colaborador> colaboradores = new List<Colaborador>();
		
		public FolhaPagamento ()
		{
		}
		
		
		public decimal calculaFolha()
		{
			decimal valorFolha = 0;
			foreach(Colaborador colaborador in colaboradores)
			{
				valorFolha += colaborador.calculaSalario();	
			}
			return valorFolha;
		}
		
		public void inserirColaboradores(Colaborador colaborador)
		{
			colaboradores.Add(colaborador);
		}
		
		public List<Colaborador> getColaboradores()
		{
			return colaboradores;	
		}
		
		public void exibeFolhaPagamento()
		{
			Console.WriteLine("-----------Folha de Pagamento-----"+ Mes + "/"+ Ano+ " -------------------");
			Console.WriteLine("-----------Colaboradores------------------------------------");
			foreach (Colaborador colaborador in getColaboradores())
			{
				colaborador.mostraColaborador();
			}
			Console.WriteLine("Total folha de pagamento: " + calculaFolha());
			Console.WriteLine("------------------------------------------------------------");
		}
	}
}

